package io.a.e

//package io.a.five
//
//import org.apache.spark.{SparkConf, SparkContext, Partition}
//
//object RDDPartition {
//  def main(args: Array[String]): Unit = {
//    val conf = new SparkConf().setAppName("RDDPartition").setMaster("local[*]")
//    val sc = new SparkContext(conf)
//
//    // 创建一个包含一些字符串的RDD
//    val fruitsRDD = sc.parallelize(Seq(
//      "apple", "banana", "orange", "pear", "watermelon", "grape", "pineapple"
//    ))
//
//    // 自定义分区函数
//    val partitionFunc = new org.apache.spark.Partitioner {
//      override def numPartitions: Int = 2
//      override def getPartition(key: Any): Int = {
//        key.toString.length <= 5 ? 0 : 1
//      }
//    }
//
//    // 使用自定义分区函数进行分区
//    val partitionedRDD = fruitsRDD.partitionBy(partitionFunc)
//
//    // 打印每个分区的元素
//    partitionedRDD.mapPartitionsWithIndex((index, iter) => iter.map(fruit => s"Partition $index: $fruit")).collect().foreach(println)
//
//    sc.stop()
//  }
//}